package hcn.protocol.ods.returnVisit;

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
import java.util.List;

/**
 * Created by ChenJij on 2020/11/12.
 */
@XmlRootElement(name = "MsgBody")
public class NotifyReturnVisitRequestDataBean {
    private InnerPatient Patient;
    private InnerOptRegister OptRegister;

    @XmlElement(name = "Patient")
    public InnerPatient getPatient() {
        return Patient;
    }

    public void setPatient(InnerPatient patient) {
        Patient = patient;
    }

    @XmlElement(name = "OptRegister")
    public InnerOptRegister getOptRegister() {
        return OptRegister;
    }

    public void setOptRegister(InnerOptRegister optRegister) {
        OptRegister = optRegister;
    }

    public static class InnerPatient {
        private String AuthorOrganization;
        private String SourcePatientIdType;
        private String SourcePatientId;
        private String IdCardCode;
        private String IdCard;
        private String Name;
        private String Sex;
        private String BirthDate;
        private String PatientPhone;
        private String Age;

        @XmlElement(name = "AuthorOrganization")
        public String getAuthorOrganization() {
            return AuthorOrganization;
        }

        public void setAuthorOrganization(String authorOrganization) {
            AuthorOrganization = authorOrganization;
        }

        @XmlElement(name = "SourcePatientIdType")
        public String getSourcePatientIdType() {
            return SourcePatientIdType;
        }

        public void setSourcePatientIdType(String sourcePatientIdType) {
            SourcePatientIdType = sourcePatientIdType;
        }

        @XmlElement(name = "SourcePatientId")
        public String getSourcePatientId() {
            return SourcePatientId;
        }

        public void setSourcePatientId(String sourcePatientId) {
            SourcePatientId = sourcePatientId;
        }

        @XmlElement(name = "IdCardCode")
        public String getIdCardCode() {
            return IdCardCode;
        }

        public void setIdCardCode(String idCardCode) {
            IdCardCode = idCardCode;
        }

        @XmlElement(name = "IdCard")
        public String getIdCard() {
            return IdCard;
        }

        public void setIdCard(String idCard) {
            IdCard = idCard;
        }

        @XmlElement(name = "Name")
        public String getName() {
            return Name;
        }

        public void setName(String name) {
            Name = name;
        }

        @XmlElement(name = "Sex")
        public String getSex() {
            return Sex;
        }

        public void setSex(String sex) {
            Sex = sex;
        }

        @XmlElement(name = "BirthDate")
        public String getBirthDate() {
            return BirthDate;
        }

        public void setBirthDate(String birthDate) {
            BirthDate = birthDate;
        }

        @XmlElement(name = "PatientPhone")
        public String getPatientPhone() {
            return PatientPhone;
        }

        public void setPatientPhone(String patientPhone) {
            PatientPhone = patientPhone;
        }

        @XmlElement(name = "Age")
        public String getAge() {
            return Age;
        }

        public void setAge(String age) {
            Age = age;
        }
    }


    public static class InnerOptRegister {
        private int OutpatientType;
        private String OutRegistryId;
        private String PatientType;
        private String ClinicId;
        private String VisitTimes;
        private String MedicalCardType;
        private String MedicalCardId;
        private String RegisteredDcotor;
        private String RegisteredDcotorName;
        private String DoctorMajorType;
        private String RegisteredDept;
        private String RegisteredDeptName;
        private String VisitOrganization;
        private String VisitOrganizationName;
        private String RegisteredType;
        private String RegisteredDateTime;
        private String DoctorDutyType;
        private String PatientProperties;
        private String RegisteredSequence;
        private String ExaminationCost;
        private String RegisteredNo;
        private String RegisteredCost;
        private String DoctorCost;
        private String BookCost;
        private String CardCost;
        private String IsAppoints;
        private String AppointsRoute;
        private String AppointsId;
        private String RegisterOperator;
        private String ClinicCause;
        private String ScheduleDateTime;
        private String DaypartingBeginDateTime;
        //修改分时段结束时间属性名称
        private String DaypartingEndDateTime;
        private String VisitId;
        private String MedicalInsuranceCategoryCode;
        private String MedicalInsuranceName;
        private String DepartmentLoca;
        private String OutOrderNumber;
        private String MedicalCostPayTypeCode;
        private String AgtOrderNumber;
        private String TotalCost;
        private String SelfCost;
        private String SettleDateTime;
        //1 强制挂号，无需预约
        private String force="1";
        private List<MedicalInsuranceCost> MedicalInsuranceCosts;
        //新增取号时间属性
        private String RegisterTime;

        @XmlElement(name = "force")
        public String getForce() {
            return force;
        }

        public void setForce(String force) {
            this.force = force;
        }

        @XmlElement(name = "OutpatientType")
        public int getOutpatientType() {
            return OutpatientType;
        }

        public void setOutpatientType(int outpatientType) {
            OutpatientType = outpatientType;
        }

        @XmlElement(name = "OutRegistryId")
        public String getOutRegistryId() {
            return OutRegistryId;
        }

        public void setOutRegistryId(String outRegistryId) {
            OutRegistryId = outRegistryId;
        }

        @XmlElement(name = "PatientType")
        public String getPatientType() {
            return PatientType;
        }

        public void setPatientType(String patientType) {
            PatientType = patientType;
        }

        @XmlElement(name = "ClinicId")
        public String getClinicId() {
            return ClinicId;
        }

        public void setClinicId(String clinicId) {
            ClinicId = clinicId;
        }

        @XmlElement(name = "VisitTimes")
        public String getVisitTimes() {
            return VisitTimes;
        }

        public void setVisitTimes(String visitTimes) {
            VisitTimes = visitTimes;
        }

        @XmlElement(name = "MedicalCardType")
        public String getMedicalCardType() {
            return MedicalCardType;
        }

        public void setMedicalCardType(String medicalCardType) {
            MedicalCardType = medicalCardType;
        }

        @XmlElement(name = "MedicalCardId")
        public String getMedicalCardId() {
            return MedicalCardId;
        }

        public void setMedicalCardId(String medicalCardId) {
            MedicalCardId = medicalCardId;
        }

        @XmlElement(name = "RegisteredDcotor")
        public String getRegisteredDcotor() {
            return RegisteredDcotor;
        }

        public void setRegisteredDcotor(String registeredDcotor) {
            RegisteredDcotor = registeredDcotor;
        }

        @XmlElement(name = "RegisteredDcotorName")
        public String getRegisteredDcotorName() {
            return RegisteredDcotorName;
        }

        public void setRegisteredDcotorName(String registeredDcotorName) {
            RegisteredDcotorName = registeredDcotorName;
        }

        @XmlElement(name = "DoctorMajorType")
        public String getDoctorMajorType() {
            return DoctorMajorType;
        }

        public void setDoctorMajorType(String doctorMajorType) {
            DoctorMajorType = doctorMajorType;
        }

        @XmlElement(name = "RegisteredDept")
        public String getRegisteredDept() {
            return RegisteredDept;
        }

        public void setRegisteredDept(String registeredDept) {
            RegisteredDept = registeredDept;
        }

        @XmlElement(name = "RegisteredDeptName")
        public String getRegisteredDeptName() {
            return RegisteredDeptName;
        }

        public void setRegisteredDeptName(String registeredDeptName) {
            RegisteredDeptName = registeredDeptName;
        }

        @XmlElement(name = "VisitOrganization")
        public String getVisitOrganization() {
            return VisitOrganization;
        }

        public void setVisitOrganization(String visitOrganization) {
            VisitOrganization = visitOrganization;
        }

        @XmlElement(name = "VisitOrganizationName")
        public String getVisitOrganizationName() {
            return VisitOrganizationName;
        }

        public void setVisitOrganizationName(String visitOrganizationName) {
            VisitOrganizationName = visitOrganizationName;
        }

        @XmlElement(name = "RegisteredType")
        public String getRegisteredType() {
            return RegisteredType;
        }

        public void setRegisteredType(String registeredType) {
            RegisteredType = registeredType;
        }

        @XmlElement(name = "RegisteredDateTime")
        public String getRegisteredDateTime() {
            return RegisteredDateTime;
        }

        public void setRegisteredDateTime(String registeredDateTime) {
            RegisteredDateTime = registeredDateTime;
        }

        @XmlElement(name = "DoctorDutyType")
        public String getDoctorDutyType() {
            return DoctorDutyType;
        }

        public void setDoctorDutyType(String doctorDutyType) {
            DoctorDutyType = doctorDutyType;
        }

        @XmlElement(name = "PatientProperties")
        public String getPatientProperties() {
            return PatientProperties;
        }

        public void setPatientProperties(String patientProperties) {
            PatientProperties = patientProperties;
        }

        @XmlElement(name = "RegisteredSequence")
        public String getRegisteredSequence() {
            return RegisteredSequence;
        }

        public void setRegisteredSequence(String registeredSequence) {
            RegisteredSequence = registeredSequence;
        }

        @XmlElement(name = "ExaminationCost")
        public String getExaminationCost() {
            return ExaminationCost;
        }

        public void setExaminationCost(String examinationCost) {
            ExaminationCost = examinationCost;
        }

        @XmlElement(name = "RegisteredNo")
        public String getRegisteredNo() {
            return RegisteredNo;
        }

        public void setRegisteredNo(String registeredNo) {
            RegisteredNo = registeredNo;
        }

        @XmlElement(name = "RegisteredCost")
        public String getRegisteredCost() {
            return RegisteredCost;
        }

        public void setRegisteredCost(String registeredCost) {
            RegisteredCost = registeredCost;
        }

        @XmlElement(name = "DoctorCost")
        public String getDoctorCost() {
            return DoctorCost;
        }

        public void setDoctorCost(String doctorCost) {
            DoctorCost = doctorCost;
        }

        @XmlElement(name = "BookCost")
        public String getBookCost() {
            return BookCost;
        }

        public void setBookCost(String bookCost) {
            BookCost = bookCost;
        }

        @XmlElement(name = "CardCost")
        public String getCardCost() {
            return CardCost;
        }

        public void setCardCost(String cardCost) {
            CardCost = cardCost;
        }

        @XmlElement(name = "IsAppoints")
        public String getIsAppoints() {
            return IsAppoints;
        }

        public void setIsAppoints(String isAppoints) {
            IsAppoints = isAppoints;
        }

        @XmlElement(name = "AppointsRoute")
        public String getAppointsRoute() {
            return AppointsRoute;
        }

        public void setAppointsRoute(String appointsRoute) {
            AppointsRoute = appointsRoute;
        }

        @XmlElement(name = "AppointsId")
        public String getAppointsId() {
            return AppointsId;
        }

        public void setAppointsId(String appointsId) {
            AppointsId = appointsId;
        }

        @XmlElement(name = "RegisterOperator")
        public String getRegisterOperator() {
            return RegisterOperator;
        }

        public void setRegisterOperator(String registerOperator) {
            RegisterOperator = registerOperator;
        }

        @XmlElement(name = "ClinicCause")
        public String getClinicCause() {
            return ClinicCause;
        }

        public void setClinicCause(String clinicCause) {
            ClinicCause = clinicCause;
        }

        @XmlElement(name = "ScheduleDateTime")
        public String getScheduleDateTime() {
            return ScheduleDateTime;
        }

        public void setScheduleDateTime(String scheduleDateTime) {
            ScheduleDateTime = scheduleDateTime;
        }

        @XmlElement(name = "DaypartingBeginDateTime")
        public String getDaypartingBeginDateTime() {
            return DaypartingBeginDateTime;
        }

        public void setDaypartingBeginDateTime(String daypartingBeginDateTime) {
            DaypartingBeginDateTime = daypartingBeginDateTime;
        }

        @XmlElement(name = "DaypartingEndDateTime")
        public String getDaypartingEndDateTime() {
            return DaypartingEndDateTime;
        }

        public void setDaypartingEndDateTime(String daypartingEndDateTime) {
            DaypartingEndDateTime = daypartingEndDateTime;
        }

        @XmlElement(name = "VisitId")
        public String getVisitId() {
            return VisitId;
        }

        public void setVisitId(String visitId) {
            VisitId = visitId;
        }

        @XmlElement(name = "MedicalInsuranceCategoryCode")
        public String getMedicalInsuranceCategoryCode() {
            return MedicalInsuranceCategoryCode;
        }

        public void setMedicalInsuranceCategoryCode(String medicalInsuranceCategoryCode) {
            MedicalInsuranceCategoryCode = medicalInsuranceCategoryCode;
        }

        @XmlElement(name = "MedicalInsuranceName")
        public String getMedicalInsuranceName() {
            return MedicalInsuranceName;
        }

        public void setMedicalInsuranceName(String medicalInsuranceName) {
            MedicalInsuranceName = medicalInsuranceName;
        }

        @XmlElement(name = "DepartmentLoca")
        public String getDepartmentLoca() {
            return DepartmentLoca;
        }

        public void setDepartmentLoca(String departmentLoca) {
            DepartmentLoca = departmentLoca;
        }

        @XmlElement(name = "OutOrderNumber")
        public String getOutOrderNumber() {
            return OutOrderNumber;
        }

        public void setOutOrderNumber(String outOrderNumber) {
            OutOrderNumber = outOrderNumber;
        }

        @XmlElement(name = "MedicalCostPayTypeCode")
        public String getMedicalCostPayTypeCode() {
            return MedicalCostPayTypeCode;
        }

        public void setMedicalCostPayTypeCode(String medicalCostPayTypeCode) {
            MedicalCostPayTypeCode = medicalCostPayTypeCode;
        }

        @XmlElement(name = "AgtOrderNumber")
        public String getAgtOrderNumber() {
            return AgtOrderNumber;
        }

        public void setAgtOrderNumber(String agtOrderNumber) {
            AgtOrderNumber = agtOrderNumber;
        }

        @XmlElement(name = "TotalCost")
        public String getTotalCost() {
            return TotalCost;
        }

        public void setTotalCost(String totalCost) {
            TotalCost = totalCost;
        }

        @XmlElement(name = "SelfCost")
        public String getSelfCost() {
            return SelfCost;
        }

        public void setSelfCost(String selfCost) {
            SelfCost = selfCost;
        }

        @XmlElement(name = "SettleDateTime")
        public String getSettleDateTime() {
            return SettleDateTime;
        }

        public void setSettleDateTime(String settleDateTime) {
            SettleDateTime = settleDateTime;
        }

        @XmlElement(name = "RegisterTime")
        public String getRegisterTime() {
            return RegisterTime;
        }

        public void setRegisterTime(String registerTime) {
            RegisterTime = registerTime;
        }

        @XmlElementWrapper(name = "MedicalInsuranceCosts")
        @XmlElement(name = "MedicalInsuranceCost")
        public List<MedicalInsuranceCost> getMedicalInsuranceCosts() {
            return MedicalInsuranceCosts;
        }

        public void setMedicalInsuranceCosts(List<MedicalInsuranceCost> medicalInsuranceCosts) {
            MedicalInsuranceCosts = medicalInsuranceCosts;
        }

        public static class MedicalInsuranceCost {
            private String MedicalCostPayTypeCode;
            private String MedicalInsuranceCost;
            private String ChannelOrderNumber;
            private String EnterQueue;

            @XmlElement(name = "MedicalCostPayTypeCode")
            public String getMedicalCostPayTypeCode() {
                return MedicalCostPayTypeCode;
            }

            public void setMedicalCostPayTypeCode(String medicalCostPayTypeCode) {
                MedicalCostPayTypeCode = medicalCostPayTypeCode;
            }

            @XmlElement(name = "MedicalInsuranceCost")
            public String getMedicalInsuranceCost() {
                return MedicalInsuranceCost;
            }

            public void setMedicalInsuranceCost(String medicalInsuranceCost) {
                MedicalInsuranceCost = medicalInsuranceCost;
            }

            @XmlElement(name = "ChannelOrderNumber")
            public String getChannelOrderNumber() {
                return ChannelOrderNumber;
            }

            public void setChannelOrderNumber(String channelOrderNumber) {
                ChannelOrderNumber = channelOrderNumber;
            }

            @XmlElement(name = "EnterQueue")
            public String getEnterQueue() {
                return EnterQueue;
            }

            public void setEnterQueue(String enterQueue) {
                EnterQueue = enterQueue;
            }
        }
    }
}